package app.utils;

import java.text.ParseException;
import java.text.ParsePosition;
import java.text.SimpleDateFormat;
import java.util.Date;

/***
 * 
 * @author xianhaoqi
 * 一个与获取时间的工具类
 *
 *2017-4-12 09:38:49
 */
public class TimeUtils {

	/**
	 * 获取现在时间，精确到分钟，返回String类型
	 * @return nowDate
	 */
	public static String getNowDateString(){
		Date date = new Date();
		SimpleDateFormat formater = new SimpleDateFormat("yyyy-MM-dd:HH-mm-ss");
		
		String nowDate = formater.format(date);
		
		return nowDate;
	}
	
	/**
	   * 获取现在时间，精确到分钟，返回Date类型
	   * 
	   * @return Date
	   */
	public static Date getNowDate() {
	   Date currentTime = new Date();
	   SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm");
	   String dateString = formatter.format(currentTime);
	   ParsePosition pos = new ParsePosition(0);
	   Date currentTime_2 = formatter.parse(dateString, pos);
	   return currentTime_2;
	}
	
	/**
	 * 获取现在的系统时间，long型
	 * @return
	 */
	public static long getNowDateLong(){
		return System.currentTimeMillis();
	}
	
	
	/**
	 * 用于将long型时间戳转换为格式化的时间，返回String
	 * @param timeLong  十三位及十三位以上long型
	 * @return
	 */
	public static String forMatTime(long timeLong){
		
		Date currentTime = new Date(timeLong);
		
		SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm ss"); 
		String timeString = formatter.format(currentTime);
		
		return timeString;
	}
	
	/**
	 * 根据format格式将时间转化成对应的字符串
	 * @param timeLong long型时间戳
	 * @param format 是要转换成的时间格式
	 * @return
	 * @time 2018-1-10 16:09:45
	 */
	public static String formatTime(long timeLong,String format){
		
		Date date = new Date(timeLong);
		SimpleDateFormat sdf = new SimpleDateFormat(format);
		String dateStr = sdf.format(date);
		return dateStr;
		
	}
	
	/**
	 * 将String类型的时间转换成Date型
	 * @param timeStr string类型时间
	 * @param format string类型时间的格式
	 * @return
	 * @throws ParseException
	 * @time 2018-1-10 16:26:59
	 */
	public static Date StringToDate(String timeStr,String format) throws ParseException{
		
		SimpleDateFormat sdf = new SimpleDateFormat(format);
		return sdf.parse(timeStr);
	}
	
	/**
	 * 将String类型的时间转换成long型
	 * @param timeStr string 类型的时间
	 * @param format string类型时间的类型
	 * @return
	 * @throws ParseException
	 * @time 2018-1-10 16:29:49
	 */
	public static long StringToLong(String timeStr,String format) throws ParseException{
		return StringToDate(timeStr, format).getTime();
	}
	
	

}
